Podstawowy Routing

Czym jest routing?

Routing to przekazywanie żądań klienta na konkretnych ścieżkach w naszym API. Innymi słowami, przypisujemy funkcje do danych linków.

Na przykład na ścieżce / wyświetlamy stronę główną, na ścieżce /about informacje o autorze, a na ścieżce /uzytkownik/<user> ze zmienną user wyświetlamy profil danego użytkownika

Metody HTTP

Aby zrozumieć routing, musimy sobie po krótce wyjaśnić, czym są metody HTTP.

Sam protokół HTTP odpowiada za komunikację klienta z serwerem. Ustala on sposób przesyłania informacji i porządkuje on dane w żądaniu. W realnym życiu protokół HTTP, to taki "kodeks drogowy", który ustala zasady ruchu.

Protokół ten ma sześć metod komunikacji. Na ten moment skupimy się na trzech z nich.

Metoda GET

Ta metoda służy do tego, aby pobierać informacje znajdujące się już na serwerze. Jest ona najczęściej używana w API.

Używa się jej m.in. do wysłania strony do klienta, informacji o użytkowniku, a także do przesłania danych zdjęcia czy ikonki.

Metoda POST

Ta metoda służy do tego, aby wysyłać nowe dane na serwer.

Używa się jej m.in. przy rejestracji i logowaniu użytkownika, przy dodawaniu posta przez użytkownika i innych operacjach, które wrzucają jakieś nowe dane na serwer.

Metoda PUT

Ta metoda służy do tego, aby zaktualizować istniejące dane na serwerze.

Używa się jej m.in. kiedy użytkownik chce zaktualizować swoją nazwę, przy edycji posta na stronie, a także przy zmianie hasła użytkownika.

Routing we flasku

We Flasku, do danych ścieżek przypisujemy funkcję za pomocą dekoratorów. Ich składnia wygląda następująco

from flask import Flask

app = Flask(__name__);

@app.get("/")
def main_page():
    return "Strona główna"

Funkcja main_page() to najprostsza funkcja zwracająca napis "Strona główna". Nad nią znajduje się dekorator

@app.get("/")

Przypisuje on funkcję main_page do ścieżki / i metody GET. Czyli funkcja main_page się wykona wtedy, kiedy klient prześle żądanie metodą GET na ścieżkę /

Po wystartowaniu aplikacji, możemy przetestować jej działanie otwierając dowolną przeglądarkę internetową i wpisując adres 127.0.0.1:5000.

W oknie przeglądarki powinien pojawić się napis

Strona główna

W przyszłości, zamiast zwykłych napisów będziemy zwracać odpowiednie pliki HTML

Ścieżka z parametrami

Zróbmy aplikację, która zwraca jeden element z tablicy. Aby to zrobić, potrzebujemy ścieżki z parametrem.

Parametr do ścieżki dodaje się za pomocą znaków < i >. Na przykład ścieżka z parametrem index będzie wyglądać tak:

/<index>

Nie polecałbym jednak dawać parametru na główną ścieżkę, gdyż zablokujemy sobie możliwość dodania innych ścieżek typu /about etc. Dodajmy do tego przedrostek

/element/<index>

Ten parametr przekażemy w argumencie funkcji przypisanej do ścieżki

from flask import Flask

app = Flask(__name__)

imiona = ["Jan", "Karol", "Piotr", "Anna", "Ala"]

@app.get("/element/<int:index>")
def get_imie(index):
    return imiona[index]

Domyślnie parametr jest tekstem, więc dodałem do niego przedrostek int:, który dał aplikacji znać, że chcę, aby była to liczba całkowita.